Techniques for determining geolocations

ABSTRACT

The described geolocation techniques determine a location of an earth-based vehicle using a non-geostationary satellite. For instance, the non-geostationary satellite receives signals transmitted by the earth-based vehicle, determines the arrival times of the signals, and the position information of the satellite corresponding to the arrival times of the signals. The arrival times and position information of the satellite are sent to a signal processing unit to determine a location of the vehicle.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 16/278,034, filed Feb. 15, 2019. The foregoing related application, in its entirety, is incorporated herein by reference.

TECHNICAL FIELD

The following disclosure relates to systems, methods, and devices for determining geolocations.

BACKGROUND

A target vehicle's location can be determined by detecting and locating signals from an emitter onboard the target vehicle. In particular, a conventional technique known as the “direction finding (DF) technique” uses directional antennas to create lines of positions (LoPs) to signal sources. The DF technique requires these LoPs to be taken from multiple measurement vehicles that have known locations. The locations of these measurement vehicles along with the created LoPs are then used to determine a Position Fix (PF), a location determine in two-dimension space, of the emitter onboard the target vehicle. The conventional DF technique, however, introduces errors to the determined PF when the target vehicle's emitter moves between the LoP measurements. This error can be eliminated by configuring the multiple measurement vehicles to take LoPs simultaneously. But, using multiple measurement vehicles can increase the cost of operation. For example, to obtain multiple measurements, a system employing the conventional DF technique may require two or three vehicles that can measure a signal transmitted from a signal source on the target vehicle. Furthermore, multiple vehicles can have a limited duration of operation, in part, because vehicles have a limited fuel range.

Another conventional technique for determining a target vehicle's location is known as “Blind Coherent Integration.” This technique involves multiple measurement vehicles that are configured to receive signals, including ones emitted by the target vehicle. The signals received at each of the sensing devices are added together after compensating for time delay and doppler frequency offset associated with each signal. The summation process causes the signals from the same target vehicle to be coherently added, becoming strengthened, while other signals are added incoherently, becoming canceled due to randomness of the time delays and doppler frequency offsets. The resulting signal after the summation process can be used to determine the location of the target vehicle.

SUMMARY

The disclosed techniques can use a single non-geostationary satellite, such as a CubeSat, to determine a geolocation of an earth-based vehicle (e.g., a boat, a ship, or a truck) in three-dimensions on the earth's surface by detecting a signal transmitted by an emitter on the earth-based vehicle. Based on the determined location, the satellite can directionally or timely transmit a signal to control the earth-based vehicle for an autonomous driving application.

A system for performing geolocation can include a non-geostationary satellite and a signal processing unit. The non-geostationary satellite may orbit earth in a non-geostationary path, such as in a low-earth orbit (LEO), a medium-earth orbit (MEO), a high-earth orbit (HEO), or a Molniya orbit. The non-geostationary satellite includes a data collection apparatus with a processor that receives a number of signals from an earth-based vehicle and determines their arrival times, and obtains the non-geostationary satellite's position information corresponding to the signals' arrival times. The data collection apparatus also sends, to a signal processing unit, the arrival times and the position information of the non-geostationary satellite corresponding to the received signals.

Upon receiving the arrival times and positioning information, the signal processing unit is configured to determine a location of the earth-based vehicle. The signal processing unit uses the received information to select a plurality of candidate locations to determine the location of the earth-based vehicle. The signal processing unit also determines, for each candidate location and based on the arrival times and the position information, an error value representing the proximity between a candidate location and the location of the earth-based vehicle. The signal processing unit selects, from the plurality of candidate locations associated with a plurality of error values, one candidate location having a lowest error value, which determines the location of the earth-based vehicle.

In other aspects, the above-described methods can be embodied in the form of processor-executable code and stored in a computer-readable program medium.

A device that is configured or operable to perform the above-described methods is also disclosed.

The above and other aspects and their implementations are described in greater detail in the drawings, the descriptions, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example of a technique for determining a geolocation using a single moving satellite.

FIG. 2 is a block diagram of an example of a data collection apparatus that receives and processes received signals.

FIG. 3 shows a block diagram of an example of a signal processing unit that can determine a location of an earth-based vehicle.

FIG. 4 shows an example flow diagram for receiving and processing received signals.

FIG. 5 shows an example flow diagram for determining a location of an earth-based vehicle.

DETAILED DESCRIPTION

The techniques for determining a geolocation described herein can be used to gather positional information about a moving or stationary vehicle through passive detection of signals transmitted by a signal source on the vehicle. A geolocation system can be installed and operated on a space-based vehicle, such as a non-geostationary satellite to detect signals transmitted from an earth-based vehicle operating a signal source. The non-geostationary satellite may orbit earth in a non-geostationary path, such as in a LEO, a MEO, a HEO, or a Molniya orbit. Based on the signals detected by the satellite, a signal processing unit can use the disclosed techniques to determine the geolocation of an earth-based vehicle. The signal processing unit can be located on the satellite, or on a remote platform which may be moving (e.g., aircraft), or stationary (e.g., on the earth). Thus, a single satellite can use the technologies described herein to perform measurements that in turn are used by a signal processing unit to determine the geolocation of an earth-based vehicle. Unlike conventional techniques that uses multiple measuring vehicles (e.g., multiple aircrafts) to determine a location of a signal source in two-dimensions, the disclosed technology can use a single satellite to determine of a location of an earth-based vehicle in three-dimensions.

LEO satellites can operate at an altitude from about 100 miles to approximately 1,240 miles above the earth's surface. LEO has an orbit with period of approximately less than 128 minutes. LEO may be an elliptical orbit or a circular orbit. For a circular orbit, an LEO may have a maximum altitude of approximately 1269 miles and a minimum altitude of approximately 124 miles. Since a LEO satellite moves at relatively fast speeds over the ground (e.g., approximately 14,430 mph to 17,450 mph for a circular orbit), multiple measurements can be taken by the same LEO satellite from different locations faster than what is possible using an aircraft-mounted conventional measurement system. The speed of the LEO (and similarly MEO, HEO, or Molniya orbit) satellite can be considered relatively fast when compared to a speed of a moving or stationary earth-based vehicle.

As an example, a geolocation system on an non-geostationary satellite can include a wide-spectrum or bandwidth capability because operating frequencies of signal sources are initially unknown, a wide dynamic range because signal strength is initially unknown, a narrow bandpass to discriminate the signal of interest from other signal sources on nearby frequencies, and/or a capability to measure an angle-of arrival to obtain bearings to locate the transmitter. The bandwidth of the geolocation system on the non-geostationary satellite can be designed to receive signals transmitted within a frequency spectrum that ranges from approximately 30 MHz to approximately 50 GHz.

FIG. 1 shows an example of a geolocation technique using a single moving satellite. Satellite 102 is a single non-geostationary satellite that operates and moves in a non-geostationary orbit. A non-geostationary satellite can travel in an orbit around the earth at a speed faster than the earth's rotation. FIG. 1 shows the satellite 102 traversing or moving along a known dotted satellite path from position A to B to C to D.

In this example, the satellite 102 includes one or more antennas and a receiver that can be configured to receive signals emitted in a frequency range of 30 MHz to 50 GHz. Specifically, in some embodiments, the antenna and receiver of the satellite 102 can be configured to receive signals emitted in a frequency range of 2 GHz to 18 GHz. Several signal sources operate at frequencies between 2 GHz and 18 GHz. Some examples of a satellite 102 operating in a non-geostationary orbit include a CubeSat or a NanoSat. A CubeSat is a small form factor satellite that may include several systems to operate the CubeSat for variety of purposes. For instance, a CubeSat may include a power source, such as a battery and/or solar panels, a communication system (e.g., an antenna), and additional electronics (e.g., signal processors or sensors). A NanoSat may be smaller in size compared to a CubeSat and may include many of the systems included in the CubeSat.

Target location T represents a location of an earth-based vehicle 104, such as a ship, or a truck. The four lines drawn between the satellite 102, when it is at positions A, B, C, and D, and the earth-based vehicle 104, represent signals that are transmitted from a signal source operating on the earth-based vehicle 104 and that are received by the satellite 102. For example, the four lines can represent signals from a ship's signal source system signature. Additional signals that may be received in-between locations A, B, C, and D are omitted from FIG. 1 for the sake of clarity. The geolocation techniques described in this patent document can determine the target location T in three-dimensions.

The non-geostationary satellite 102 can be considered relatively fast (when compared to a speed of a relatively slowly moving or stationary earth-based vehicle 104), which is a beneficial feature for determining geolocation. A conventional aircraft-based system can be susceptible to large errors in determining location of a vehicle in scenarios where the aircraft-based system measures the received signals from the vehicle that moves during the time period when the measurements are taken. The small difference in speeds between the flying aircraft and the moving vehicle can introduce errors in location accuracy. In contrast, the large difference in speeds between a fast-moving non-geostationary satellite 102 and a relatively slowly moving or stationary earth-based vehicle 104 is beneficial, at least because the non-geostationary satellite 102 can receive multiple signals from the earth-based vehicle 104 whose relatively slow speed minimizes the errors in determining the vehicle 104's location. As further explained below, the information associated with multiple signals can be processed by a signal processing unit to locate a position or location of the earth-based vehicle 104, which is different from the conventional technique of correlating bearings.

In FIG. 1 , the earth-based vehicle 104 may be located at an unknown target location T on the earth's surface. The bottom half of FIG. 1 shows two related timing diagrams. The top timing diagram illustrates the Target (or earth-based vehicle 104) transmitting signals several times including at times t₀, t₁, t₂, t₃, etc., The difference between the signals transmitted by the vehicle 104 is shown as t_(R). The time difference between t₀ and t₁ can be described as t₁=n*t_(R), the time difference between t₀ and t₂ can be described as t₂=m*t_(R), and the time difference between to and t₃ can be described as t₃=o*t_(R). The variables n, m, and o may be integer values.

In timing diagram example of FIG. 1 , t_(R) is constrained by the signal source on the vehicle 104 and can be a constant or may have an unknown value. In some cases where t_(R) is irregular but deterministic, the location determination techniques described in FIG. 3 below can be used to determine location of the earth-based vehicle 104. For the case of a signal source, the repetition period t_(R), is a signature of the signal source used by the vehicle 104. The transmit signals could be single or multiple depending on the signal sweep rate (rotation rate) or pulse repetition rate (PRR) of the multiple signals. The sweep rate, PRR and individual radio frequency (RF) signal pulse width are functions of a particular signal source set. Other signals with known or deterministic properties can also be received and processed to determine location of the earth-based vehicle.

The bottom timing diagram in FIG. 1 illustrates the satellite 102 receiving at least some of the signals transmitted by the earth-based vehicle 104 at satellite locations A, B, C, and D. For instance, the signals transmitted by the vehicle 104 at t₀ is received by the satellite 102 at time of arrival t_(A) and at satellite location A, the signal transmitted by the vehicle 104 at t₁ is received by the satellite 102 at time of arrival t_(B) and at satellite location B, and so on. The time differences t_(A)−t₀, t_(B)−t₁, and so on are the difference in time between when the transmitter transmits a signal and the receiver receives that same signal. The signals received at times t_(A), t_(B), t_(C), t_(D) need not be from consecutive transmitted signals.

The satellite 102 may include a Global Positioning System (GPS) device that provides information about positions A, B, C, and D of the satellite 102 when the satellite 102 received the signals from the earth-based vehicle 104. As further described in FIG. 3 below, a signal processing unit processes the signals received by the satellite 102 to determine a target location T in three dimensions.

FIG. 2 is a block diagram illustrating an example of a data collection apparatus located on or in an non-geostationary satellite that may orbit in a non-geostationary orbit, such as in a LEO, MEO, HEO, or Molniya orbit. The data collection apparatus 200 includes one or more processors 220 that can read code from the memory 210, and perform operations associated with the other blocks or modules shown in FIG. 2 . The data collection apparatus 200 includes one or more antennas 230 and a receiver 240 configured to receive the transmitted signals. For example, the receiver 240 can receive the signals at times t_(A), t_(B), t_(C), t_(D), etc., as mentioned in FIG. 1 while the non-geostationary satellite moves in between each received signal.

Based on the received signals, the data collection module 250 collects data associated with the received signals. For example, referring to the signal received by the data collection apparatus 200 at position A in FIG. 1 , the data collection module 250 obtains the time t_(A) when the signal was received. The data collection module 250 also obtains information regarding the location of the non-geostationary satellite 102 at position A from a satellite location module 260 (e.g., GPS chip or a position location determination device, such as inertial guidance or derived from other externally provided positional information available to it). The satellite location module 260 can calculate satellite location from data or information available externally to the satellite. The satellite may, for example, have ephemeris data information uploaded to it from which the satellite location module 260 could calculate the satellite's position at the time of arrival of a signal. The satellite location module 260 can have information based on signal source location information (e.g., ground signal-source information) uploaded to it from which to calculate the satellite's position. The data collection module 205 also collects timing and satellite position data associated with each signal received at times t_(B), t_(C), and t_(D), and any additional signals.

The data collection apparatus 200 also includes a transceiver 270 (or other receivers and transmitters) with which the satellite 102 can communicate with a stationary platform (e.g., ground-based computing device located on earth) or with a moving remote platform (e.g., an aircraft). The computing device can communicate to the satellite 102 via the transceiver 270 to instruct the data collection module 250 to collect data associated with the received signals (e.g., arrival times and/or position information of the satellite) or to send that data to the computing device. In some embodiments, the transceiver 270 can be combined with the receiver 240 (e.g., may be the same device) so that the transceiver 270 can perform the operations associated with the receiver 240. The data collection module 250 is configured to collect and/or send data associated with the received signals in response to receiving an instruction from the computing system located on a stationary platform (e.g., ground-based on the earth) or located on a remote moving platform (e.g., an aircraft). The computing device can send the data received from the data collection module 250 to a signal processing unit (as shown in FIG. 3 ) that can determine the location of the earth-based vehicle 104. The signal processing unit can be located in a stationary platform (e.g., the ground-based computing system on earth) or the signal processing unit can be located on or in a moving remote platform-based computing device. In some other embodiments, the satellite 102 can include a signal processing unit (as shown in FIG. 3 ) that can determine a location of the earth-based vehicle 104. In embodiments where the signal processing unit is included in the satellite 102, the determined location of the earth-based vehicle 104 is sent to the computing device in a stationary platform (e.g., a ground-based computing device located on earth) or in a moving remote platform.

FIG. 3 shows an example of a signal processing unit that can determine a location of an earth-based vehicle. The signal processing unit 300 may include one or more processors 320 that can read code from the memory 310, and perform operations associated with the other blocks or modules of the signal processing unit 300. In embodiments where the data collection apparatus 200 and signal processing unit 300 are located on or in an non-geostationary satellite, the memory 210 and 310 may be the same and the processor(s) 330 and 330 may be the same.

The signal processing unit 300 includes a location determination module 340 that obtains signal timing (e.g., arrival time) and satellite position data from the data collection module 250. In embodiments where the signal processing unit 300 is located on a stationary platform (e.g., ground-based on the earth) or on a moving remote platform (e.g., an aircraft), the receiver 330 receives the signal timing and satellite position data from the data collection module 250. Based on the received timing and position data, the location determination module 340 determines the location of the earth-based vehicle 104 using the techniques described below.

The location determination module 340 can determine the location of the earth-based vehicle 104 based on the operations described below. A detailed explanation of the computations, relevant equations, and additional operations to determine location of the earth-based vehicle is described after the operations described below (and elsewhere in this patent document).

-   -   The location determination module 340 chooses a candidate         location and determines a first set of path lengths between the         candidate location and each satellite position data associated         with a received signal (as explained in FIG. 1 ). For instance,         the first set of path lengths may be obtained by determining a         magnitude of the vector between the candidate location and each         of the satellite position data.     -   The location determination module 340 also determines a second         set of path lengths between a location of the earth-based         vehicle 104 and each satellite position data. For instance, the         second set of path lengths may be obtained by multiplying the         speed of light with the arrival time of each signal.     -   Next, the location determination module 340 obtains two error         values. The first error value (described as path length error         value below) is obtained by comparing path lengths from the         first set with the corresponding path lengths from the second         set. The second error value (described as earth-radius error         value below) is obtained by taking the difference between the         radius of the earth known at the latitude and longitude         associated with the candidate location and the magnitude of the         radius of the candidate location determined from the same         reference point, e.g., the center of the earth. The two error         values are combined to obtain a total error that characterizes         the proximity between the candidate location and the actual         location of the earth-based vehicle 104.     -   The operations described above can be repeated by using         additional candidate location values to obtain total error         values corresponding to the additional candidate locations. The         candidate location associated with the lowest total error is         select as the best determine of the location of the earth-based         vehicle 104.

Referring to FIG. 1 , the values for variables t₀, t_(R) and Target location T are unknown. In the timing diagram example shown in FIG. 1 , the satellite 102 can obtain four measurements, for example, four satellite position and four arrival times related to the signals received at times t_(A), t_(B), t_(C), t_(D). Based on the satellite position and timing data, the location determination module 340 uses Equation (1) to determine target location T. (|TD|−|TB|)−(|TC|−|TA|)=c×[t _(D) −t _(B)−(t _(C) −t _(A))]  Equation (1) where “c” is the speed of light, |TA| is the magnitude of the vector TA, which is the path length or distance from T to A, |TB| is the magnitude of the vector TB, which is the path length from T to B, and so on. The variables n, m and o (as shown in FIG. 1 ) are integers that relate to the transmit times t₁, t₂, and t₃, respectively, from Target T. As mentioned above, the scenario in FIG. 1 shows that there are three unknown quantities: t₀, t_(R), and target location T.

The location determination module 340 can eliminate t₀ and t_(R) by an example algebraic manipulation as shown in Equation (1) below, leaving the target location T as the only unknown. Thus, in some embodiments, as explained for Equation (1), a signal processing unit 300 uses at least four received signals to solve for the target location T.

In some other embodiments, t₀ and t_(R) can be eliminated using only three measurements, t_(A), t_(B) and t_(C). Thus, Equation (1) becomes Equation (2) below. (|TC|−|TB|)−(|TB|−|TA|)=c×[t _(C)−2·t _(B) +t _(A)]  Equation (2) Thus, in some embodiments, as explained for Equation (2), a signal processing unit 300 uses at least three received signals to solve for the target location T.

A benefit of using Equation (1) to determine target location T is that Equation (1) can eliminate to and the repetition period, t_(R) without knowing the values of t₀ and t_(R). Similarly, Equation (2) can be used to determine target location T so that Equation (2) can eliminate to and the repetition period, t_(R) without knowing the values of t₀ and t_(R).

To determine a target location T in three dimensions, the location determination module 340 can select a candidate target location, T′. The candidate target location T′ can be associated with a latitude, a longitude, a height at or above the surface of the earth. The latitude and longitude of T′ may be based on a reference system known as World Geodetic System 1984 (WGS 1984). An example of an initial target height is sea level. Candidate target location T′ can be selected based on a number of factors such as the range of elevation (e.g., 0 to 30 degrees) from the earth-based vehicle to the satellite that receives the signals, or the doppler frequency of the received signals.

Next, the location determination module 340 constructs a path length error function as shown in Equation (3) below for embodiments using at least four received signals. In some embodiments, the location determination module 340 constructs a path length error function as shown in Equation (4) below using at least three received signals. |T′D|−|T′B|−(|T′C|−T′A|)−c×[t _(D) −t _(B)−(t _(C) −t _(A))]=ε_(p)  Equation (3) |T′C|−|T′B|−(|T′B|−|T′A|)−c×[t _(C)−2t _(B) +t _(A))]=ε_(p)  Equation (4) where ε_(p) is a value that describes or represents the path length error, |T′A| is the magnitude of the vector T′A, which is the path length or distance from T′ to A, |T′B| is the magnitude of the vector T′B, which is the path length from T′ to B, and so on. As an example, |T′D| can be determined by converting the latitude and longitude of T′ to geocentric cartesian coordinates (e.g., (x, y, z) which may be translated into <radius, latitude, longitude>), where T′ is the vector (x, y, z). Similarly, the latitude and longitude of D obtained from GPS coordinates for example are converted to geocentric cartesian coordinates to obtain vector D. T′D is the vector between T′ and D, and |T′D| is the magnitude or length of the vector that describes or represents the distance between T′ and D.

As shown in Equations (3) and (4), the path length error value ε_(p), is the difference between (i) the path lengths from a candidate location, T′ to the locations of satellite (e.g., as calculated from the satellite's locations relative to candidate location T′ at the observation time (e.g., |T′D|−|T′B|−(|T′C|−|T′A|) for Equation (3)) and (ii) the path length calculated from the time of arrival of the signals received from target location T (e.g., c×[t_(D)−t_(B)−(t_(C)−t_(A))] for Equation (3)). The path lengths |T′A|, |T′B|, |T′C|, and/or |T′D| can be considered a set of path lengths between the candidate location T′ and each position of the non-geostationary satellite. Furthermore, the path lengths (c×t_(A)), (c×t_(B)) or (c×2t_(B)), (c×t_(C)), and/or (c×t_(D)) can be considered another set of path lengths between the location of the earth-based vehicle and each position of the non-geostationary satellite.

Equation (3) is the same as Equation (5) shown below. Equations (3) and (5) can be solved by first determining for each satellite location (e.g. positions A, B, C, D) a difference between a path length associated with a candidate location T′ and a path length associated with signals received from target location T (e.g., (|T′D|−c×t_(D)), (|T′B|−c×t_(B)), (|TC|−c×t_(C)), (|T′A|−c×t_(A))). Next, path length error value ε_(p), is determined by subtracting the differences between the path lengths associated with positions B, C, and D and by adding the difference between the path length associated with position A. (|T′D|−c×t _(D))−(|T′B|−c×t _(B))−(|T′C|−c×t _(C))+(|T′A|−c×t _(A))=ε_(p)  Equation (5)

Similarly, Equation (4) is the same as Equation (6) shown below. (T′C|−c×t _(C))−(2|T′B|−c×2t _(B))+(T′A|−c×t _(A))=ε_(p)  Equation (6)

The location determination module 340 can minimize the path error value for Equations (5) or (6) by iterating candidate values of T′ using Equation (8) as described below. By minimizing the path length error value, the location determination module 340 can determine the target location T in three dimensions.

Next, the location determination module 340 can use another error function to determine the target location T in a third dimension, such as height. Since the Target position, T, is constrained to be on or near to the earth surface, the location determination module 340 can construct an example earth-radius error function as shown below in Equation (7), where ε_(r) is a value that describes or represents the earth-radius error, |T′| is the length of the vector T′ can be determined from a reference point (0, 0, 0) in geocentric coordinates (i.e., center mass of earth). |T′| describes the magnitude of the radius of the candidate location T′, which can be determined by taking the square root of the sum of the squares of the cartesian coordinates of T′, i.e., square root(x²+y²+z²). The earth-radius error value ε_(r) can be the radial difference between the length of the vector T′ and the earth's radius, r_(e). The earth's radius r_(e) is determined at the latitude and longitude location associated with candidate location T′ (as given by, e.g., WGS-84) and can be determined from a reference point (0, 0, 0). |T′|−r _(e)=ε_(r)  Equation (7)

Next, the location determination module 340 can combine the two sets of error quantities obtained from the path error and earth radius error function values in a mean squared error (MSE) form as shown in Equation (8). mse=ε_(p) ²+(k×ε _(r) ²)  Equation (8) where k is a scale factor or a weighting value. In some embodiments, k may have a pre-determined value, such as 1. The MSE provides a value that can characterize the proximity or the closeness between the candidate location T′ and the actual target location T. Thus, the MSE can quantify whether the candidate location T′ is a good determine of the target location T. Thus, a low value for MSE indicates that the candidate location T′ is close to the actual target location T.

The location determination module 340 can minimize the combined error quantities to determine a best determine of the target location T in three dimensions. The location determination module 340 can determine the best determine of target location, T, by iterating candidate values of T′ and by using the set of measurements taken by the satellite for a vehicle located at target location T. For example, the location determination module 340 can repeat Equations (6) to (8) (or Equations (5), (7), and (8)) two times by using two different values of T′ (e.g., a first T′ and a second T′) and by using the same set of measurements taken by the satellite for a vehicle located at target location T to provide a first MSE for the first T′ and a second MSE for the second T′. In this example, the location determination module 340 can select either the first or the second T′ that has the lowest MSE. In some embodiments, the location determination module 340 may iterate the candidate values of T′ many times (e.g., four times) to provide a best determine of the target location T. In some example embodiments, the location determination module 340 may iterate candidate values of T′ to determine of Target location, T by using a minimization technique such as a Down Hill Simplex method.

The signal processing unit 300 may include a location tracking module 350 that can store the candidate location T′ that best determines the target location T of the earth-based vehicle determined by the location determination module 340. A benefit of storing the best determine of the target location T is that it can provide a history of the determined location(s) of the earth-based vehicle. A ground-based or remote platform-based computing device may use the location history of the earth-based vehicle to plot a map that shows the various locations of the earth-based vehicle at different times.

In some embodiments, to enhance the accuracy of the determine of the target location T, the location determination module 340 can repeat the operations described above in the context of Equations (1) to (8) using additional position and timing measurements that may be obtained by the satellite in sequence. As explained above, a location determination module 340 can use the four measurements described in FIG. 1 (related to satellite locations A, B, C, and D) to determine a target location T. In some cases, the satellite 102 may receive additional signals from vehicle 104 at additional satellite locations E, F, G, H (not shown in FIG. 1 ). In such cases, the determine of the target location T can be improved by using information associated with the additional signals. For example, the location determination module 340 can use the four measurements related to satellite location B, C, D, and E to obtain another determine of the target location T. In another example, the location determination module 340 can use the four measurements related to satellite location E, F, G, and H to obtain another determine of the target location T.

The techniques described in this patent document can be used to determine a location of an earth-based vehicle (e.g., boat, ship, or truck) based on timing and position measurement data associated with signals received by a receiver on a non-geostationary satellite. For example, based on the signals transmitted by a signal source on a vehicle, the location determination module 340 can determine a location of the ship from which the signal source is operating. In some embodiments, the techniques described in this patent document can be extended to a multi-satellite system involving multiple non-geostationary satellites. Since a satellite moves fast compared to a slowly moving earth-based vehicle, a single satellite travelling around the earth cannot receive signals from a vehicle located on the earth at all times. In a multi-satellite system, each non-geostationary satellite can be configured to obtain multiple measurement data as described in this patent document. Each non-geostationary satellite can orbit the earth at some distance from another non-geostationary satellite so that the multiple satellites can form multiple rings of moving satellites orbiting the earth. The location determination module 340 of the signal processing unit can obtain the multiple measurement data from each satellite to determine location of an earth-based vehicle operating a signal source. A benefit of the multi-satellite system is that it can allow a signal processing unit to continuously determine the location of a moving or stationary earth-based vehicle operating a EM source.

FIG. 4 shows an example flow diagram for receiving and processing signals by a data collection apparatus. At the receiving operation 402, a data collection apparatus on a non-geostationary satellite receives a number of signals from an earth-based vehicle. The non-geostationary satellite may orbit earth in a non-geostationary orbit, such as in a LEO, MEO, HEO, or Molniya orbit. In some embodiments, the number of signals is at least three.

For each received signal, the data collection apparatus determines an arrival time and a position information of the non-geostationary satellite. At the determining operation 404, the data collection apparatus determines arrival times of the number of signals. At the obtaining operation 406, the data collection apparatus obtains position information of the non-geostationary satellite corresponding to the arrival times of the number of signals. The determining operation 404 and the obtaining operation 406 may be performed after each signal has been received. In some embodiments, the position information of the non-geostationary satellite is obtained from a global positioning system (GPS) device located on the non-geostationary satellite.

At the sending operation 408, the data collection apparatus sends, to a signal processing unit, the arrival times and the position information of the non-geostationary satellite for the number of signals. In some embodiments, the data collection apparatus may send each arrival time and position information to a signal processing unit as the data collection apparatus receives and processes each signal. In some other embodiments, the data collection apparatus may send a group of arrival times and position information (e.g., a set of 3 or 4 of arrival times and a set of 3 or 4 position information) to a signal processing unit after the data collection apparatus receives and processes a number of signals (e.g., 3 or 4). In some embodiments, the data processing apparatus is configured to perform the determining operation 404, the obtaining operation 406, or the sending operation 408 in response to receiving an instruction from a ground-based or remote platform-based computing system.

In some embodiments, the data collection apparatus may include a processor and a memory that may include instructions stored thereupon. The instructions upon execution by the processor configure the data collection apparatus to perform the operations described in FIGS. 2 and 4 and in the embodiments described in this patent document.

FIG. 5 shows an example flow diagram for determining a location of an earth-based vehicle by a signal processing unit. At the receiving operation 502, the signal processing unit receives arrival times and position information of a non-geostationary satellite associated with a number of signals received by the non-geostationary satellite from the earth-based vehicle. In some embodiments, the signal processing unit is located in a ground-based or in a remote platform-based computing system.

At the selecting operation 504, the signal processing unit selects a plurality of candidate locations (e.g., four candidate locations) to determine the location of the earth-based vehicle.

At the processing operation 506, the signal processing unit processes the arrival times, the position information, and the plurality of candidate locations to determine the location of the earth-based vehicle. The processing of the arrival times, position information, and candidate locations can be performed by determining, for each candidate location and based on the arrival times and the position information, an error value that describes or represents a proximity between a candidate location and the location of the earth-based vehicle. In some embodiments, the error value is determined for each candidate location by the signal processing unit configured to

-   -   (i) determine a first set of path lengths between the candidate         location and each position information of the non-geostationary         satellite,     -   (ii) determine a second set of path lengths between the location         of the earth-based vehicle and each position information of the         non-geostationary satellite,     -   (iii) obtain a first error value based on differences between         path lengths from the first set of path lengths and         corresponding path lengths from the second set of path lengths         for each position information of the non-geostationary         satellite,     -   (iv) obtain a second error value based on a difference between         earth's radius at a latitude and a longitude associated with the         candidate location and a magnitude of the candidate location's         radius, where the earth radius and the magnitude of the         candidate location's radius are determined from a same reference         point, and     -   (v) determine the error value by combining the first error value         and the second error value.

In some embodiments, the first set of path lengths are determined by the signal processing unit configured to calculate a magnitude of a vector between the candidate location and each position information of the non-geostationary satellite. In some embodiments, the second set of path lengths are determined by the signal processing unit configured to multiply a speed of light by each arrival time of the number of signals, where the number of signals are received from the location of the earth-based vehicle.

In some embodiments, the first error value is obtained by the signal processing unit configured to use a linear combination of the differences between path lengths from the first set of path lengths and corresponding path lengths from the second set of path lengths for each position information of the non-geostationary satellite. In some embodiments, the error value is determined by the signal processing unit configured to: multiply a pre-determined value by the second error value raised to a power of two to obtain a first value, and add the first value to the first error value raised to a power of two to obtain the error value

After the processing operation, the signal processing unit selects, from the plurality of candidate locations associated with a plurality of error values, one candidate location having a lowest error value, where the selected candidate location is the determine of the location of the earth-based vehicle. In some embodiments, the selected candidate location provides the determine of the location of the earth-based vehicle in three-dimensions. In some embodiments, the signal processing unit is further configured to store the selected candidate location for the earth-based vehicle.

In some embodiments, the signal processing unit may include a processor and a memory that may include instructions stored thereupon. The instructions upon execution by the processor configure the signal processing unit to perform the operations described in FIGS. 3 and 5 and in the embodiments described in this patent document.

The disclosed and other embodiments, modules and the functional operations described in this document can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more them. The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.

A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random-access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., non-volatile solid state storage drives, magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

While this patent document contains many specifics, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub combination or variation of a sub combination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document. 

What is claimed is what is described and illustrated, including:
 1. A system for performing geolocation, comprising: a data collection apparatus in a non-geostationary cube satellite, the data collection apparatus including a processor configured to: receive, in a receiver of the data collection apparatus, signals transmitted at different times by a boat or shipping vessel, the signals corresponding to a signature by which the boat or shipping vessel can be identified, wherein the signals are detected via an antenna of the cube satellite, and the cube satellite is at a different location in orbit at each instance that a signal from the boat or shipping vessel is received; determine at least three arrival times corresponding to when the signals are received by the receiver; obtain position information of the non-geostationary satellite's locations at the at least three arrival times when the signals are received; and send, to a signal processing unit, the arrival times and the position information of the non-geostationary satellite's locations at those arrival times, wherein the signal processing unit is configured to determine a location of the boat or shipping vessel by determining candidate locations and error values that represent a proximity between each candidate location and the location of the boat or shipping vessel, based on the arrival times and the satellite's position information.
 2. The system of claim 1, wherein the processing of the arrival times, the position information, and the plurality of candidate locations is performed the signal processing unit by: selecting, from the plurality of candidate locations associated with a plurality of error values, one candidate location having a lowest error value, wherein the selected candidate location is the determine of the location of the boat or shipping vessel.
 3. The system of claim 2, wherein the error value is determined for each candidate location by the signal processing unit by: determining a first set of path lengths between the candidate location and each position information of the non-geostationary satellite; determining a second set of path lengths between the location of the boat or shipping vessel and each position information of the non-geostationary satellite; obtaining a first error value based on differences between path lengths from the first set of path lengths and corresponding path lengths from the second set of path lengths for each position information of the non-geostationary satellite; obtaining a second error value based on a difference between earth's radius at a latitude and a longitude associated with the candidate location and a magnitude of the candidate location's radius, wherein the earth radius and the magnitude of the candidate location's radius are determined from a same reference point; and determining the error value by combining the first error value and the second error value.
 4. The system of claim 3, wherein the first set of path lengths are determined by the signal processing unit by calculating a magnitude of a vector between the candidate location and each position information of the non-geostationary satellite.
 5. The system of claim 3, wherein the second set of path lengths are determined by the signal processing unit by multiplying a speed of light by each arrival time of the number of signals.
 6. The system of claim 3, wherein the first error value is obtained by the signal processing unit by using a linear combination of the differences between path lengths from the first set of path lengths and corresponding path lengths from the second set of path lengths for each position information of the non-geostationary satellite.
 7. The system of claim 3, wherein the error value is determined by the signal processing unit by: multiplying a pre-determined value by the second error value raised to a power of two to obtain a first value; and adding the first value to the first error value raised to a power of two to obtain the error value.
 8. The system of claim 1, wherein the position information of the non-geostationary satellite is obtained from a global positioning system (GPS) device or from a position determination device located on the non-geostationary satellite, or wherein the position information of the non-geostationary satellite is calculated from ephemeris data or ground signal-source information.
 9. The system of claim 2, wherein the method implemented by the processor of the signal processing unit further comprises: storing the selected candidate location for the boat or shipping vessel.
 10. The system of claim 1, wherein the number of signals is three.
 11. The system of claim 2, wherein the selected candidate location provides the determine of the location of the boat or shipping vessel in three-dimensions.
 12. The system of claim 1, wherein the signal processing unit is located in a computing system in a stationary platform or in a remote moving platform.
 13. The system of claim 1, wherein the data processing apparatus is configured to perform the determining, the obtaining, or the sending in response to receiving an instruction from a ground-based computing system or from a moving remote platform.
 14. A ground station configured to process signals transmitted from a non-geostationary cube satellite in orbit to determine a location of a boat or shipping vessel, the ground station having a signal processing unit that includes a processor configured to: receive a plurality of arrival times and position information of a non-geostationary satellite associated with a number of signals received by the non-geostationary satellite from the a boat or shipping vessel; selecting a plurality of candidate locations to determine the location of the a boat or shipping vessel by determining error values that represent proximities between candidate locations and the location of the boat or shipping vessel; and processing the arrival times, the position information, and the plurality of candidate locations to determine the location of the boat or shipping vessel.
 15. The ground station of claim 14, wherein the processing of the arrival times, the position information, and the plurality of candidate locations is performed by: selecting, from the plurality of candidate locations associated with a plurality of error values, one candidate location having a lowest error value, wherein the selected candidate location is the determination of the location of the boat or shipping vessel.
 16. The ground station of claim 15, wherein the error value is determined for each candidate location by the signal processing unit by: determining a first set of path lengths between the candidate location and each position information of the non-geostationary satellite; determining a second set of path lengths between the location of the earth-based vehicle and each position information of the non-geostationary satellite; obtaining a first error value based on differences between path lengths from the first set of path lengths and corresponding path lengths from the second set of path lengths for each position information of the non-geostationary satellite; obtaining a second error value based on a difference between earth's radius at a latitude and a longitude associated with the candidate location and a magnitude of the candidate location's radius, wherein the earth radius and the magnitude of the candidate location's radius are determined from a same reference point; and determining the error value by combining the first error value and the second error value.
 17. The ground station of claim 16, wherein the first set of path lengths are determined by the signal processing unit by calculating a magnitude of a vector between the candidate location and each position information of the non-geostationary satellite.
 18. The ground station of claim 16, wherein the second set of path lengths are determined by the signal processing unit by multiplying a speed of light by each arrival time of the number of signals.
 19. The ground station of claim 16, wherein the first error value is obtained by the signal processing unit by using a linear combination of the differences between path lengths from the first set of path lengths and corresponding path lengths from the second set of path lengths for each position information of the non-geostationary satellite.
 20. The ground station of claim 16, wherein the error value is determined by the signal processing by: multiplying a pre-determined value by the second error value raised to a power of two to obtain a first value; and adding the first value to the first error value raised to a power of two to obtain the error value.
 21. The ground station of claim 15, wherein the method implemented by the processor of the signal processing unit further comprises: store the selected candidate location for the boat or shipping vessel.
 22. The ground station of claim 14, wherein the number of signals is at least three.
 23. The ground station of claim 15, wherein the selected candidate location provides the determine of the location of the boat or shipping vessel in three-dimensions.
 24. The ground station of claim 14, wherein the signal processing unit is located in a computing system in a stationary platform or in a remote moving platform. 